1. Technical Field
Aspects of this document relate generally to data compression systems and related methods, such as components and algorithms used to reduce the size and/or bandwidth required to transmit a quantity of data information. More specific implementations involve compressing data in a data channel.
2. Background Art
Conventionally, data compression systems compress a stream of digital data signals (uncompressed bits) into compressed digital data signals (compressed bits), which require less bandwidth (fewer bits) than the original digital data signals, and that decompress the compressed digital data signals back into the original data signals or a close approximation thereof. Lossless data compression systems decompress the compressed digital data signals back into the original data signals exactly. Thus, lossless data compression refers to any process that converts data into an alternative data form that requires less bandwidth, i.e., has fewer bits, than the data converted in a process that is reversible so that the original data can be recovered.
Accordingly, the purpose of data compression systems is to effect a savings in an amount of storage required to hold the data or the amount of time (or bandwidth) required to transmit the data. By decreasing required space for data storage or required time (or bandwidth) for data transmission, data compression results in a monetary and resource savings.
To be of practical and general utility, a digital data compression system should satisfy certain criteria. Specifically, one criterion is that the system should provide high performance, i.e., compression/decompression rates, for both compression and decompression with respect to the data rates in the communications channel being utilized, be it a data bus, a wired network, a wireless network or the like. In other words, data transmission rates seen by a sender of uncompressed data and a receiver of the uncompressed data should not be reduced as a result of compression/decompression processing overhead. In fact, effective data rates achieved, may be significantly increased over slow communications channels, because more original data can be transmitted per unit time, if the original data is compressed preceding and decompressed following transmission, because there is less compressed data to transmit than there would have been with the original data.
Another important criterion in the design of a data compression and decompression system is compression effectiveness. Compression effectiveness is characterized by the compression ratio of the system, i.e. a larger compression ratio indicates greater compression effectiveness. However, in order for data to be compressible using a lossless data compression system, the data to be compressed must contain redundancies. As a result, the compression ratio, or compression effectiveness, in a lossless data compression system (and to a lesser degree in a lossy data compression system) is a function of the degree of redundancy in the data being compressed. The compression effectiveness of any data compression system is also affected by how effectively the data compression system exploits, for data compression purposes, the particular forms of redundancy in the original data.